package com.ling.pl.autoproject.definition.component.form.model;

import com.ling.pl.core.commons.annotation.Dict;
import com.ling.pl.core.commons.annotation.ModelProperty;

import javax.persistence.Column;

public class FormPropertyItem {
    //表单项信息
    @Column(name = "FORM_ID", length = 36)
    @ModelProperty(comment = "form id")
    String formId;

    @Column(name = "NAME", length = 150)
    @ModelProperty(comment = "名称")
    String name;

    @Column(name = "CODE", length = 150)
    @ModelProperty(comment = "代码")
    String code;

    @Column(name = "CONTAINER_STYLE", length = 150)
    @ModelProperty(comment = "容器样式")
    String containerStyle;

    @Column(name = "PLUGIN", length = 250)
    @ModelProperty(comment = "自定义绘制插件")
    String plugin;

    @Column(name = "TITLE_STYLE", length = 150)
    @ModelProperty(comment = "标题样式")
    String titleStyle;

    @Column(name = "COLUMN_MODEL", length = 150)
    @ModelProperty(comment = "列模型")
    String columnModel;

    //控件信息
    @Column(name = "ENTITY_PROPERTY", length = 150)
    @ModelProperty(comment = "实体属性")
    String entityProperty;

    @Column(name = "编辑项模式", length = 150)
    @ModelProperty(comment = "default,移动端(default),自放大镜", des = "对应,对应属性的属性界面模式中配置出来的下拉框(关联其他表的数据集),放大镜")
    String propertyControllerId;

    @Column(name = "CONTROLLER_HEIGHT")
    @ModelProperty(comment = "控件高度")
    Integer controllerHeight;

    @Column(name = "CONTROLLER_WIDTH")
    @ModelProperty(comment = "控件宽度")
    Integer controllerWitdh;

    @Column(name = "EDITOR_TYPE", length = 150)
    @ModelProperty(comment = "编辑器类型")
    @Dict(code = "builder.entity.editorType", des = "文本框.密码框,隐藏表单项,多行输入框,多行输入框(10行),IP地址输入框,直接内容,标签,下拉列表框,下拉列表框(100宽度).选项框," +
            "单选项列表,....见")
    String editorType;

    @Column(name = "EDITOR_STYLE", length = 150)
    @ModelProperty(comment = "编辑器样式")
    @Dict(code = "builder.entity.editorType", des = "精确到分钟,密码框,只有小时分钟,邮箱网址,精确到天,电话号码,精确到小时,数字")
    String editorStyle;

    @Column(name = "CUSTOMER_LABEL", length = 150)
    @ModelProperty(comment = "自定义标签")
    String customerLabel;

    @Column(name = "LABEL_I18N", length = 150)
    @ModelProperty(comment = "标题语言资源")
    String labelI18n;

    @Column(name = "IS_LABEL")
    @ModelProperty(comment = "空白标签")
    Boolean isLabel;

    @Column(name = "LABEL_POSITION", length = 150)
    @ModelProperty(comment = "标签位置")
    @Dict(code = "builder.component.labelPosition", des = "左边,右边,上方,下方,不显示")
    String labelPosition;

    @Column(name = "LABEL_WIDTH")
    @ModelProperty(comment = "标签宽度")
    Integer labelWidth;

    @Column(name = "IS_NULL_ABLE")
    @ModelProperty(comment = "允许空输入")
    Boolean isNullAble;

    @Column(name = "ENABLE_RULE", length = 150)
    @ModelProperty(comment = "启用条件")
    @Dict(code = "builder.component.enableRule", des = "无,新建,更新,全部")
    String enableRule;

    @Column(name = "FLUSH_CONTROLLER_RULE_ID", length = 36)
    @ModelProperty(comment = "表单项更新")
    String flushControllerRuleId;

    @Column(name = "DEFAULT_NEW_VALUE_TYPE", length = 50)
    @ModelProperty(comment = "新建默认值类型")
    @Dict(code = "builder.property.defaultValueType", des = "用户全局对象,系统全局对象,唯一编码,网页请求,数据对象类型,当前操作用户-编号,当前操作用户-名称,当前时间,当前应用数据,当前用户,当前机构,当前部门")
    String defaultNewValueType;

    @Column(name = "DEFAULT_NEW_VALUE", length = 150)
    @ModelProperty(comment = "新建默认值")
    String defaultNewValue;

    @Column(name = "DEFAULT_UPDATE_VALUE_TYPE", length = 50)
    @ModelProperty(comment = "更新默认值类型")
    @Dict(code = "builder.property.defaultValueType", des = "用户全局对象,系统全局对象,唯一编码,网页请求,数据对象类型,当前操作用户-编号,当前操作用户-名称,当前时间,当前应用数据,当前用户,当前机构,当前部门")
    String defaultUpdateValueType;

    @Column(name = "DEFAULT_UPDATE_VALUE", length = 150)
    @ModelProperty(comment = "更新默认值")
    String defaultUpdateValue;

    @Column(name = "VALUE_PROPERTY", length = 150)
    @ModelProperty(comment = "值项名称")
    String valueProperty;

    @Column(name = "IGNORE_INPUT", length = 150)
    @ModelProperty(comment = "忽略输入值")
    @Dict(code = "builder.component.enableRule", des = "无,新建,更新,全部")
    String ignoreInput;

    @Column(name = "EDITOR_PARAM", length = 250)
    @ModelProperty(comment = "编辑器参数")
    String editorParam;

    @Column(name = "DICT_CODE", length = 150)
    @ModelProperty(comment = "系统代码表")
    String dictCode;

    @Column(name = "IS_DICT_CODE_CONFIG")
    @ModelProperty(comment = "需要提供代码表配置")
    Boolean isDictCodeConfig;

    @Column(name = "DICT_CODE_CONFIG_TYPE", length = 150)
    @ModelProperty(comment = "输出代码表配置模式")
    @Dict(code = "builder.component.dictCodeConfigType", des = "无,只输出选择项,输出子项")
    String dictCodeConfigType;

    @Column(name = "SELECT_VIEW_ID", length = 36)
    @ModelProperty(comment = "选择界面视图")
    String selectViewId;

    @Column(name = "LINK_VIEW_ID", length = 36)
    @ModelProperty(comment = "数据链接视图")
    String linkViewId;

    @Column(name = "RESET_PROPERTY", length = 150)
    @ModelProperty(comment = "重置项名称")
    String resetProperty;

    @Column(name = "BACK_PROCESSOR_ID", length = 150)
    @ModelProperty(comment = "表单项后台处理对象")
    String backProcessorId;

    @Column(name = "ICON", length = 150)
    @ModelProperty(comment = "输入项图标")
    String icon;

    @Column(name = "PLACE_HOLDER", length = 150)
    @ModelProperty(comment = "空白内容提示")
    String placeHolder;

    @Column(name = "IS_COLUMN_SECURITY")
    @ModelProperty(comment = "启用列权限控制")
    Boolean isColumnSecurity;

}
